{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 1,
   "id": "9dd1f325-b4c6-45e8-a36a-d22dc4b8dc2d",
   "metadata": {
    "tags": []
   },
   "outputs": [],
   "source": [
    "import tensorboard as tb\n",
    "import pandas as pd\n",
    "import seaborn as sns\n",
    "import matplotlib.pyplot as plt"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "id": "91daa32e-75a3-490b-8195-967661a5af6a",
   "metadata": {
    "tags": []
   },
   "outputs": [],
   "source": [
    "experiment_id_tabnet = 'oYB2aPfzTQmXj07sJ7KOFg'\n",
    "experiment_id_linear = 'JnDDBWSgQPag4qWXJKb0bg'\n",
    "experiment_tabnet = tb.data.experimental.ExperimentFromDev(experiment_id_tabnet)\n",
    "experiment_linear = tb.data.experimental.ExperimentFromDev(experiment_id_linear)\n",
    "data_tabnet = experiment_tabnet.get_scalars()\n",
    "data_linear = experiment_linear.get_scalars()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "id": "c8593a82-ff72-4426-8efa-a3df92283b31",
   "metadata": {
    "tags": []
   },
   "outputs": [],
   "source": [
    "LINEAR = [f'linear_{i}_final' for i in range(1, 5)]\n",
    "TABNET = [f'w_augment_{i}' for i in range(1, 6)]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "id": "dd9d7573-20c7-4621-ab9c-e079c25c0663",
   "metadata": {
    "tags": []
   },
   "outputs": [],
   "source": [
    "def get_data(data, versions, columns):\n",
    "    dfs = []\n",
    "    for version in versions:\n",
    "        if isinstance(version, str):\n",
    "            version = [version]\n",
    "        dfs.append(\n",
    "            data[data.run.isin(version)]\n",
    "            .drop_duplicates(subset=['step', 'tag'], keep='last')\n",
    "            .pivot(index='step', columns='tag', values='value')\n",
    "            [columns]\n",
    "            .dropna()\n",
    "            .assign(version=version[0])\n",
    "        )\n",
    "        \n",
    "    return pd.concat(dfs)\n",
    "\n",
    "\n",
    "val_cols = ['epoch', 'val_loss', 'val_f1_macro']\n",
    "df_tabnet = get_data(data_tabnet, TABNET, val_cols).assign(model='TabNet')\n",
    "df_linear = get_data(data_linear, LINEAR, val_cols).assign(model='Linear')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "id": "00e9d152-69e5-4f15-95b8-5df2a8b999db",
   "metadata": {
    "tags": []
   },
   "outputs": [
    {
     "data": {
      "image/png": "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R9boyKpog/i6OotC4W2eeuoprWfPntqyZcu01NRUbcmSJZrZbNZWrlzpqbTVq1cvbfny5dr27du13//+91qnTp208vJyTdM0bdOmTZper9eefPJJLSUlRVuyZIlmtVqrVbG67rrrtPj4eO2TTz7RUlNTte+++0774IMPNE2rquaVmJiorVy5Utu5c6d24YUXaiNHjvTF26FoRpSgKtoUpaWlms1m037++edq22+77Tbthhtu8Ihdpfhpmqbl5ORoVqtVW7p0qaZpmnbjjTdql156abXjH374Ya13796apmlaSkqKBmgrVqyodQyVr/Hdd995tn399dca0OJqyiq8i5ryK9oU+/bto7i4mEsvvZSAgADP7d///jepqame/U6uEB8WFkaPHj3YvXs3ALt37+b888+vdt7zzz+f3377DZfLxdatWzEYDIwaNeq0Yzm5J31MTAwAWVlZjb5GRctFNelTtCmKiooA+Prrr4mLi6v2nNlsriaqZ4vVaq3Xfkaj0fO3TqcDxL+raLsoC1XRpujduzdms5m0tDS6du1a7RYfH+/Zb926dZ6/c3Nz2bt3L7169QKgV69erFmzptp516xZQ/fu3TEYDPTr1w+3293qupIqmh5loSraFIGBgUybNo0HH3wQt9vNBRdcQH5+PmvWrCEoKIiOHTsC8OSTT9KuXTuioqKYOXMm4eHhXHPNNQA89NBDDBs2jLlz5zJhwgTWrl3LSy+9xMsvvwxAp06dmDRpErfeeisLFy5kwIABHDp0iKysLK677jpfXbqiJeBrJ65C4W3cbre2YMECrUePHprRaNQiIiK0pKQkbdWqVZ6A0Zdffqn16dPH0wts27Zt1c7x0Ucfab1799aMRqPWoUMH7bnnnqv2fElJifbggw9qMTExmslk0rp27aq9+eabmqZVBaVyc3M9+1c2RDxw4EBTX77Ch6ieUopzipUrV3LJJZeQm5tLSEiIr4ejaGMoH6pCoVB4CSWoCoVC4SXUlF+hUCi8hLJQFQqFwksoQVUoFAovoQRVoVAovIQSVIVCofASSlAVCoXCSyhBVSgUCi+hBFWhUCi8hBJUhUKh8BJKUBUKhcJL/D96Ujayz8gvnAAAAABJRU5ErkJggg==",
      "text/plain": [
       "<Figure size 350x350 with 2 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "fig, axs = plt.subplots(2, 1, sharex=True, figsize=(3.5, 3.5))\n",
    "\n",
    "sns.lineplot(x='epoch', y='val_loss', hue='model', data=pd.concat([df_linear, df_tabnet]), ax=axs[0])\n",
    "axs[0].set_ylabel('val. loss')\n",
    "axs[0].legend(title='')\n",
    "axs[0].set_yticks([0.35, 0.45, 0.55])\n",
    "\n",
    "sns.lineplot(x='epoch', y='val_f1_macro', hue='model', data=pd.concat([df_linear, df_tabnet]), ax=axs[1])\n",
    "axs[1].set_ylabel('val. F1-score')\n",
    "axs[1].legend(title='')\n",
    "axs[1].set_yticks([0.78, 0.81, 0.84])\n",
    "\n",
    "plt.tight_layout()\n",
    "plt.savefig('/dss/dsshome1/04/di93zer/git/cellnet/figure-plots/figure1/val_loss_tabnet_vs_linear.pdf')\n",
    "plt.savefig('/dss/dsshome1/04/di93zer/git/cellnet/figure-plots/figure1/val_loss_tabnet_vs_linear.png', dpi=300)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "45f0f854-9518-4023-8079-9e2e9e91948e",
   "metadata": {
    "tags": []
   },
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "2ce57695-84a9-4e91-851c-157ec908a970",
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "8351113a-f071-4bcb-8833-f8d039afe6d6",
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3 (ipykernel)",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.8.10"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 5
}
